Embodiments of the present invention relate generally to the field of computer performance, and more particularly to virtual processor management using a dynamic virtual processor manager.
Server virtualization is the partitioning of the resources of a physical server into multiple entities referred to as virtual servers or logical partitions. Each virtual server acts as if it were a separate physical server, including independently executing distinct workloads (i.e., one or more applications) and operating systems. The virtual servers can be defined as dedicated or shared. A dedicated partition receives exclusive use of the configured resource. For example, the processors allocated to the dedicated partition are unavailable for use by another partition, even if one or more of the allocated processors in the dedicated partition is idle. By contrast, a shared partition receives its processor allocation from a pool of physical processors, also referred to as a shared processor pool, from which other shared partitions receive their processor allocations. Each physical processor (CPU) in the shared processor pool is logically subdivided into portions called virtual processors. The physical server's virtual machine monitor, also referred to as a hypervisor, manages virtual processors in the shared processor pool. Each shared partition receives its allocation as a number of virtual processors. In contrast with the dedicated partition, the hypervisor may add or remove virtual processors from a shared partition depending on the processing needs of the shared partition and in relation to the processing needs of the other shared partitions. In this way, the physical processors are efficiently utilized.
Various operating system tuning parameters can be manually adjusted to achieve a desired performance level, such as throughput, response time, and processor utilization. One such parameter adjusts the number of threads per virtual processor to cause the hypervisor to dispatch only the required virtual, and the underlying physical, processors to achieve the performance goal. Determining an appropriate parameter setting is a manual and iterative process that requires that a systems administrator gather and analyze historic performance data for the workload. However, when workload performance is not consistently predictable, determining optimal parameter settings may require several manually applied approximations.
A virtual processor manager that dynamically samples and analyzes virtual processor utilization and proactively adjusts to changing partition performance metrics may achieve and maintain the desired performance while reducing power consumption to idle physical processors.